package cn.tedu.ex;
//测试 jdk的新特性
//1.8 --Lambda表达式
//使用Lambda语法来代替 匿名内部类，代码不仅简洁，而且还可读
//语法:  (参数列表) -> { 方法体 }
//要求: --只有一个抽象方法的 接口
public class TestLambda {
    public static void main(String[] args) {
        //匿名内部类
//        Inter in = new Inter(){
//            //提供重写的抽象方法
//            @Override
//            public void save() {
//                System.out.println("数据保存成功~");
//            }
//        } ;
//        in.save();

        //TODO Lambda表达式--要求接口里只能有一个抽象方法--优化匿名内部类
        //TODO 语法:(参数列表) -> { 方法体 } ;  --练习:没有参数,没有返回值
       Inter in2 = () -> { System.out.println("Lambda表达式!"); } ;
       in2.save();

       //TODO 语法:(参数列表) -> { 方法体 } ;   --练习:有参数,没有返回值
        Inter2 in3 = (int a) -> {  System.out.println(a); } ;
        in3.delete(10);

        //TODO 语法:(参数列表) -> { 方法体 } ;   --练习:有参数,有返回值(使用return关键字)
        Inter3 in4 = (String a,int b) -> { return  a+b ; } ;
        System.out.println( in4.get("陈子枢",18)  );//打印获取到的结果

        //TODO

    }
}
@FunctionalInterface
interface Inter3{
    String get(String name, int age);
//    String get2(String name,int age);
}
interface Inter2{
    void delete(int id) ;
}
interface Inter{
    void save() ;
}

